home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-01-01 | 4.8 KB | 125 lines | [TEXT/PJMM] |
- unit About; { version 2.1 last update: 1/1/92 }
- {}
- {}
- { About… is copyrighted, and I reserve all rights to it; both source and}
- { compiled versions. Please do not distribute this source without my}
- { permission, or remove this notice. Thanks.}
- {}
- { Jon Wind (About…)}
- { 2374 Hillwood Drive}
- { Maplewood, MN 55119}
- {}
- { 2.1 Changes }
- { Updated demo to work properly with System 7.0 and added popup menu for window types }
- { Improved overall stability of About… unit, especially in tight memory situations }
- { Added support for movableDBoxProc window type }
- { Added support for plainDBox window type to be drawn with only scrollable text }
- {}
- { 2.0 Changes }
- { Created Modal and Modeless versions }
- { Added optional support for display of styled text }
- { Added support for copying styled text }
- { Added ability to specify how window will be centered instead of just center or not center }
- { Improved error checking in low memory conditions }
- { Shift-command-c will now also copy text }
- { Method of obtaining main window rect should now work for DAs, cdevs, etc }
- { Window dragging now gets bounds from GrayRgn }
- { Window centering routines now shift the window as neccessary to keep it entirely onscreen }
- { Option clicking in the window displays the version instead of option clicking anywhere }
- { OK button is now horizontally centered if MainIcon = NoIcon & Length(WinMsg) = 0; set WinMsg to an invisible character to not center it }
- { OK button is disabled and default roundrect is drawn in gray if the (modeless) About window is not in front }
- { Added support for close box instead of OK button for noGrowDocProc or rDocProc windows }
- { Scrolling text area is extended downward if MainIcon = NoIcon & Length(WinMsg) = 0 }
- { Control and window auxRecs are now used for frame and background colors }
- {}
- {$R-}
- interface
-
-
- const
- AboutVersion = 'About… 2.1';
- AboutNoIcon = -1;
- AboutNoCenter = -1;
- AboutTopCenter = 0;
- AboutMainCenter = 1;
- AboutMsg = 0;
- AboutTEXT = 1;
-
- movableDBoxProc = 5;
-
- type
- AboutFontRec = record
- Font, Size: Integer;
- Face: Style;
- Color: Integer;
- end;
- AboutRec = record
- FontInfo: array[AboutMsg..AboutTEXT] of AboutFontRec;
- TEXTCopy, KeyEquivs, CloseBox, Styled: Boolean;
- CenterMode, MainIcon, ClickIcon: Integer;
- ClickMsg: Str255;
- end;
- { Note: font color(s) must be blackColor, whiteColor, redColor, greenColor, blueColor, cyanColor, magentaColor, or yellowColor }
- { Note: if MainIcon = AboutNoIcon then no icon will be drawn }
- { Note: if ClickIcon = AboutNoIcon then no icon will be drawn when original icon is clicked on }
- { Note: if CenterMode = AboutNoCenter the window will use the supplied coordinates and will not be centered }
- { Note: if CenterMode = AboutTopCenter the window will be centered on the front window or the main monitor if there is no front window }
- { Note: if CenterMode = AboutMainCenter the window will be centered on the main monitor }
- { Note: if Length(ClickMsg) = 0 then no message will be drawn when original icon is clicked on }
- { Note: CloseBox will be ignored for dBoxProc, altDBoxProc, and movableDBoxProc windows }
-
-
-
- { Modal procedure: }
- { this routine does everything, returning to calling proc only after the window is dismissed... }
- procedure BuildAbout (WinRect: Rect;
- WinProc, TEXTid: Integer;
- WinTitle, WinMsg: Str255;
- WinMisc: AboutRec);
-
-
- { Modeless procedures: }
- { returns true if the specified window is an About window; otherwise returns false }
- function IsAboutWindow (theWindow: WindowPtr): Boolean;
-
- { open About window and return pointer to it - returns NIL if window is not created }
- { Note: you should keep track of this pointer only if you wish to keep specific track of it }
- function OpenAbout (WinRect: Rect;
- WinProc, TEXTid: Integer;
- WinTitle, WinMsg: Str255;
- WinMisc: AboutRec): WindowPtr;
-
- { handle event relating to About window, ie updateEvt, activateEvt, mouseDown, keyDown, etc… }
- { Note: this proc should be called after every event for each About window for everything to work correctly }
- { Note: this proc calls the CloseAbout proc if the OK button or close box is selected }
- { Note: you can filter events passed to it to simulate a modal dialog }
- procedure HandleAbout (var theWindow: WindowPtr;
- var theEvent: EventRecord);
-
- { close the specified About window, kill data structures associated with it, and set theWindow to NIL… }
- { Note: this proc is called by the HandleAbout proc when an About window is dismissed by selecting its OK button }
- { Note: this proc should be called when the program needs to remove an About window }
- procedure CloseAbout (var theWindow: WindowPtr);
-
-
-
- implementation
-
-
-
- procedure BuildAbout;
- external;
-
- function IsAboutWindow;
- external;
-
- function OpenAbout;
- external;
-
- procedure HandleAbout;
- external;
-
- procedure CloseAbout;
- external;
-
- end.